fix(deploy): repair one-click-deploy.sh prechecks and frontend probe paths - #1363
Conversation
…paths one-click-deploy.sh failed at its first gate: REQUIRED_FILES listed two files that do not exist anywhere in the repo (mcp_server.py, learning_app_processor.py) and three pre-move k8s/... paths. Even past that gate, it built the Python backend image (infrastructure/docker/Dockerfile.production) for a Deployment container configured as a Node app on port 3000, so the rollout could never pass readiness. enhanced-framework is the Next.js frontend: the manifest sets NODE_ENV/PORT=3000, both Services target port 3000, and the Python backend is already deployed as the separate mcp-server container. Make script and manifest agree on that topology: - Build the image from apps/web/Dockerfile instead of the Python Dockerfile.production. - Point liveness/readiness probes (and the script's post-deploy health check) at GET /api, the health endpoint the web app actually serves; it served neither /health nor /ready. - Refresh REQUIRED_FILES to paths that exist and fix all kubectl manifest paths to infrastructure/k8s/.... - cd to the repo root so relative paths work from any invocation dir, and run integration tests via pytest (tests/integration/test_runner.py does not exist). - Add tests/unit/test_one_click_deploy_precheck.py, run by CI's unit suite, asserting every REQUIRED_FILES entry and every -f path in the script resolves, so the list cannot rot again. Generated with [Linear](https://linear.app/myxstack/issue/GRV-195/one-click-deploysh-is-non-functional-stale-precheck-paths-and-a#agent-session-3eb72d16) Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned FilesNone |
Agent Completion Truth Gate: BLOCKEDReasons: Machine-readable verdict{
"details": {
"collection_errors": [
"missing_intent_snapshot",
"missing_agent_run_id",
"missing_agent_login"
],
"invalid_fields": [
"policy.agent_login",
"policy.run_id"
]
},
"reasons": [
"invalid_payload"
],
"verdict": "blocked"
} |
Canonical issue
Closes #1127
Outcome
scripts/deployment/one-click-deploy.shno longer aborts at its first gate on files that don't exist, and the image it builds matches the Deployment that consumes it. The topology follows the issue's frontend option:enhanced-frameworkis the Next.js web app (consistent withNODE_ENV/PORT=3000and both Services targeting port 3000), while the Python backend remains the separatemcp-servercontainer.REQUIRED_FILESrefreshed to paths that exist (drops the never-existentmcp_server.py/learning_app_processor.py, fixes the pre-movek8s/...paths); allkubectl -fpaths now useinfrastructure/k8s/....apps/web/Dockerfileinstead of the PythonDockerfile.production.GET /api— the health endpoint the web app actually serves (apps/web/src/app/api/route.ts); it serves neither/healthnor/ready.cds to the repo root and runs integration tests viapytest tests/integration(tests/integration/test_runner.pydoesn't exist).tests/unit/test_one_click_deploy_precheck.py(picked up by the existing unit-test job) asserts everyREQUIRED_FILESentry and every-fpath in the script resolves, so the list can't rot again.Scope
one-click-deploy.sh,infrastructure/k8s/production/deployment.yamlprobe paths, path-rot guard test.imagePullPolicy: Always, themcp-serverconfigmap-sourced code, and Dockerfile.production hardening (GRV-192 / fix: harden Dockerfile.production install and de-vacuify its security tests #1122).Risk
Verification
Head: 3ffb940
tests/unit/test_one_click_deploy_precheck.pypass;bash -non the script passesProduction evidence
Not applicable: no cluster in this environment; the change makes the script/manifest self-consistent and is guarded by the new unit test in CI.
Agent handoff
Agent provenance